package com.czxy.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import java.util.Map;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "skus01", type = "docs", shards = 5, replicas = 1)
public class SearchSku {
    /**
     * skuId
     */
    @Id
    private Integer id;
    /**
     * 不分词不索引只存储
     */
    @Field(type = FieldType.Keyword,index = false)
    /**
     * 图片地址
     */
    private String logo;
    /**
     * 分词索引存储
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    /**
     * sku名字
     */
    private String sku_name;
    /**
     * 用于关键字搜索， 所有需要被搜索的信息，包含标题，分类，甚至品牌
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String all;
    /**
     * 上架时间--用于时间排序
     */
    @Field(type = FieldType.Long)
    /**
     * 上架时间--用于时间排序
     */
    private Long on_sale_time;
    /**
     * 品牌编号
     */
    @Field(type = FieldType.Integer)
    private Integer brand_id;
    /**
     * 分类id
     */
    @Field(type = FieldType.Integer)
    private Integer cat3_id;
    /**
     * 规格列表 : {"机身颜色":"白色","内存":"3GB","机身存储":"16GB"}
     */
    /**
     * 可搜索的规格参数，key是参数名，值是参数值
     */
    private Map<String, Object> specs;

    /**
     * 价格
     */
    @Field(type = FieldType.Double)
    private Double price;
    @Field(type = FieldType.Text)
    private String spu_name;
    /**
     * 库存量
     */
    @Field(type = FieldType.Integer)
    private Integer stock;
    @Field(type = FieldType.Text)
    private String description;
    /**
     * 规格与包装
     */
    @Field(type = FieldType.Text)
    private String packages;
    /**
     * 售后保障
     */
    @Field(type = FieldType.Text)
    private String aftersale;
    /**
     * 评价数
     */
    @Field(type = FieldType.Integer)
    private Integer comment_count;
    /**
     * 销量
     */
    @Field(type = FieldType.Integer)
    private Integer seller_count;
}